/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.com.cotelasa.scp.controlador;

import java.io.Serializable;
import java.util.logging.Level;
import javax.inject.Inject;
import javax.inject.Named;
import org.apache.log4j.Logger;
import org.springframework.context.annotation.Scope;
import pe.com.cotelasa.common.controlador.MBGenerico;
import pe.com.cotelasa.scp.common.IObserver;
import pe.com.cotelasa.scp.common.ISubject;
import pe.com.cotelasa.scp.controlador.backingBean.BKComponenteFindProveedor;
import pe.com.cotelasa.scp.dominio.excepcion.ServiceException;
import pe.com.cotelasa.scp.dominio.service.IServicioProveedor;
import pe.com.cotelasa.scp.entidad.Proveedor;

/**
 *
 * @author WINDOWS 7
 */
@SuppressWarnings("serial")
@Named(value = "MBComponenteFindProveedor")
@Scope("request")
public class MBComponenteFindProveedor extends MBGenerico implements ISubject, Serializable {

    private static Logger logger = Logger.getLogger(MBComponenteFindProveedor.class);
    @Inject
    private BKComponenteFindProveedor bk;
    @Inject
    private IServicioProveedor servicioProveedor;

    public void inicializarBusqueda() {
        bk.getListaProveedors().clear();
        bk.setProveedorSeleccionado(new Proveedor());
        bk.setRazon("");
        bk.getProveedorSeleccionado().setRuc("");
        bk.getProveedorSeleccionado().setNombreComercial("");
    }

    public void cargarProveedores() {
        try {
            
            bk.setListaProveedors(servicioProveedor.listarProveedorActivos());
        } catch (ServiceException ex) {
            java.util.logging.Logger.getLogger(MBComponenteFindProveedor.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void buscarProveedores() {
        try {
            bk.getProveedorSeleccionado().setRazonSocial(bk.getRazon());
            bk.setListaProveedors(servicioProveedor.listarProveedorPorFiltro(bk.getProveedorSeleccionado()));
        } catch (ServiceException ex) {
            java.util.logging.Logger.getLogger(MBComponenteFindProveedor.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public void clearObserver() {
        bk.getObservers().clear();
    }

    @Override
    public void addObserver(IObserver observador) {
        bk.addObservers(observador);
    }

    @Override
    public void notificarObservadores() {
        for (IObserver observer : bk.getObservers()) {
            observer.actualizarObservador(bk.getProveedorSeleccionado());
        }
    }
}
